package com.djf.springaidemo.config;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.document.Document;
import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.ai.vectorstore.SimpleVectorStore;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * @Author 26393
 * @Date 2025/5/2 20:41
 * @Version 1.0
 */
@Configuration
public class AiConfig {

    @Bean
    ChatClient chatClient(ChatClient.Builder builder) {
        return builder.defaultSystem("你将作为一名机器人产品的专家，对于用户的使用需求作出解答")
                .build();
    }

    @Bean
    VectorStore vectorStore(EmbeddingModel embeddingModel) {
        SimpleVectorStore simpleVectorStore = SimpleVectorStore.builder(embeddingModel)
                .build();

        // 生成一个机器人产品说明书的文档
        List<Document> documents = List.of(
                new Document("""
                        本服务条款适用于您对 xinlei 的体验。预订航班，即表示您同意这些条款。
                            1. 预订航班
                            - 通过我们的网站或移动应用程序预订。
                            - 预订时需要全额付款。
                            - 确保个人信息（姓名、ID 等）的准确性，因为更正可能会产生 25 的费用。
                            2. 更改预订
                            - 允许在航班起飞前 24 小时更改。
                            - 通过在线更改或联系我们的支持人员。
                            - 改签费：经济舱 50，豪华经济舱 30，商务舱免费。
                            3. 取消预订
                            - 最晚在航班起飞前 48 小时取消。
                            - 取消费用：经济舱 75 美元，豪华经济舱 50 美元，商务舱 25 美元。
                            - 退款将在 7 个工作日内处理。
                        """));

        simpleVectorStore.add(documents);
        return simpleVectorStore;
    }
}
